package com.itheima.waitnotify_demo2;

import sun.security.krb5.internal.crypto.Des;

/*
    生产者步骤：
        1，判断桌子上是否有汉堡包
            如果有就等待，如果没有才生产。
        2，把汉堡包放在桌子上。
        3，叫醒等待的消费者开吃

        生产者 : 厨师
 */
public class Cooker implements Runnable {
    @Override
    public void run() {
        while (true) {// 循环生产汉堡包 , 需要生产10个
            synchronized (Desk.lock) {
                if (Desk.count == 0) {
                    // 生产10个 , 停掉死循环
                    break;
                }
                // 生产的数量不到10个
                // 判断桌子上是否有汉堡包
                // if (Desk.flag == true) {
                if (Desk.flag) {
                    // 桌子上有汉堡包
                    try {
                        Desk.lock.wait();
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                } else {
                    // 桌子上没有汉堡包
                    System.out.println("厨师生产了一个汉堡包.");
                    // 桌子上存在汉堡包
                    Desk.flag = true;
                    // 唤醒消费者
                    Desk.lock.notify();
                }
            }
        }
    }
}
